package com.ssy.lingxi.common.constant;

/**
 * 公共的常量类
 * @author jw.chen
 * @version 2.0.0
 * @date 2020/6/19
 */
public class Constants {
    /**
     * 会员积分前缀
     */
    public static final String MEMBER_LRC_PREFIX = "lrc";

    /**
     * 会员积分分隔符
     */
    public static final String MEMBER_LRC_SPLIT = ":";

    /**
     * 品类fullId为8位
     */
    public static final String CATEGORY_FULL_ID_NUM = "%08d";

    /**
     * fullId分隔符
     */
    public static final String SPLIT_STR_FULL_ID = ".";

    /**
     * 短信服务配置参数值和参数注释的分割符;单位和品类初始化到redis分隔符;
     */
    public static final String SPLIT_STR = "|";

    /**
     * 转义符
     */
    public static final String TRANSFER_STR = "\\";

    /**
     * 下划线
     */
    public static final String UNDERLINE_STR = "_";

    /**
     * 逗号
     */
    public static final String COMMA_STR = ",";

    /**
     * 商品名称和规格分隔符
     */
    public static final String COMMODITY_NAME_SPLIT_STR = "/";

    /**
     * 下拉框默认查询条数
     */
    public static final Integer SELECT_COUNT = 10;

    /**
     * 编号默认位数
     */
    public static final Integer CODE_NUM = 6;

    /**
     * 商品编号前缀
     */
    public static final String COMMODITY_CODE_PREFIX = "P";

    /**
     * 账户交易流水号
     */
    public static final String ACCOUNT_TRACE_CODE = "account-trace-code";

    /**
     * 订单微信支付生成随机单号
     */
    public static final String ORDER_PAY_WEIXIN_NO = "order:pay:weixin:no";

    /**
     * 竞价单生成编号
     */
    public static final String BIDDING_NO = "bidding:order:no";

    /**
     * 账户交易流水号:时间格式
     */
    public static final String ACCOUNT_TRACE_CODE_DATE = "yyyyMMddHHmm";

    /**
     * 单号:时间格式
     */
    public static final String ORDER_NO_TIME_TYPE = "yyMMdd";

    /**
     * 账户交易流水号位数
     */
    public static final Integer ACCOUNT_TRACE_CODE_NUM_LEN = 6;

    /**
     * 单号位数
     */
    public static final Integer ORDER_NO = 6;

    /**
     * 订单微信支付生成随机单号
     */
    public static final Integer ORDER_PAY_WEIXIN_LEN = 5;

    /**
     * 用户唯一标识
     */
    public static final String TOKEN = "token";

    /**
     * 站点唯一标识
     */
    public static final String SITE = "site";

    /**
     * 进货单最大记录数
     */
    public static final Integer PURCHASE_MAX_COUNT = 99;

    /**
     * 详情页日志最大记录数
     */
    public static final Integer DETAIL_LOG_MAX_COUNT = 100;

    /**
     * 授权码, reidskey前缀
     */
    public static final String QR_AUTH_CODE_SUFFIX = "login:auth:code:";
    public static final String QR_AUTH_INFO_SUFFIX = "login:auth:info:";

    /**
     * 二维码登录, 授权码有效时间(分钟)
     */
    public static final long QR_AUTH_CODE_EXPIRE_MINUTES = 5;

    /**
     * 一天换成成毫秒
     */
    public static final long DAY_TO_MILLISECONDS = 24 * 60 * 60 * 1000;

    /**
     * 一天换成成秒
     */
    public static final long DAY_TO_SECONDS = 24 * 60 * 60;

    /**
     * 前端undefined
     */
    public static final String UNDEFINED = "undefined";


    /***********************************  授信配置   ***************************************************/


/***********************************  redis库配置   ***************************************************/
    /**
     * redis数据库下标值（用户库）
     */
    public static final Integer REDIS_USER_INDEX = 0;

    /**
     * redis数据库下标值（商品库）
     */
    public static final Integer REDIS_PRODUCT_INDEX = 1;

    /**
     * redis数据库下标值（订单库）
     */
    public static final Integer REDIS_ORDER_INDEX = 2;

    /**
     * redis数据库下标值（平台后台基础库）
     */
    public static final Integer REDIS_PLATFORM_MANAGE_INDEX = 3;

    /**
     * redis数据库下标值（短信服务库）
     */
    public static final Integer REDIS_SMS_INDEX = 4;

    /**
     * redis数据库下标值（报表服务库）
     */
    public static final Integer REDIS_REPORT_INDEX = 5;

    /**
     * redis数据库下标值（支付服务库）
     */
    public static final Integer REDIS_PAY_INDEX = 6;

    /**
     * redis数据库下标值（采购服务库）
     */
    public static final Integer PURCHASE_INDEX = 7;

    /**
     * redis数据库下标值（工作流服务库）
     */
    public static final Integer REDIS_WORKFLOW_INDEX = 8;

    /**
     * redis数据库下标值（合同服务库）
     */
    public static final Integer REDIS_CONTRACT_INDEX = 9;

    /**
     * redis数据库下标值（模板服务库）
     */
    public static final Integer REDIS_TEMPLATE_INDEX = 10;

    /**
     * redis数据库下标值（营销服务库）
     */
    public static final Integer REDIS_MARKETING_INDEX = 11;

    /**
     * redis数据库下标值（OpenAPI服务库）
     */
    public static final Integer REDIS_OPEN_API_INDEX = 12;

    /**
     * redis数据库下标值（结算服务）
     */
    public static final Integer REDIS_SETTLEMENT_INDEX = 13;


/**************************************  redis-key ******************************************************/

    /**
     * 实名验证配置信息
     */
    public static final String REDIS_KEY_AUTH_SERVICE = "merchant-service";
    public static final String REDIS_AUTH_CONFIG = "auth_config";
    /**
     * 短信服务器配置信息
     */
    public static final String REDIS_KEY_SERVICE = "sms-service";
    public static final String REDIS_FIELD_SERVICE_CONFIG = "config";

    /**
     * 平台后台--单位key
     */
    public static final String REDIS_KEY_UNIT = "unit";

    /**
     * 平台后台--行政区域key
     */
    public static final String REDIS_KEY_AREA = "area";

    /**
     * 平台后台--行政区域key(缓存带区域首字母)
     */
    public static final String REDIS_KEY_REGIONAL_INITIALS = "regionalInitials";

    /**
     * 平台后台--站点key
     */
    public static final String REDIS_KEY_SITE = "site_";

    /**
     * 平台后台--商城key
     */
    public static final String REDIS_KEY_SHOP = "shop";

    /**
     * 平台后台--自营商城key
     */
    public static final String REDIS_KEY_SELF_SHOP = "self_shop";

    /**
     * 商品服务--平台后台品类
     */
    public static final String REDIS_KEY_CATEGORY = "category";

    /**
     * 商品服务--品牌
     */
    public static final String REDIS_KEY_BRAND = "brand";

    /**
     * 商品服务--会员品类
     */
    public static final String REDIS_KEY_CUSTOMER_CATEGORY = "customer-category";

    /**
     * 商品服务--会员品类属性排序
     */
    public static final String REDIS_KEY_CUSTOMER_CATEGORY_ATTRIBUTE_SORT= "customer_category_attribute_sort_";

    /**
     * 支付服务--建行瓦片平台权限
     */
    public static final String REDIS_KEY_CCB_PAY_AUTH = "ccb-pay-auth";

    /**
     * 结算服务 --对账单号
     */
    public static final String SETTLEMENT_RECONCILIATION_NO = "settlement_reconciliation_no";

    /**
     * 结算服务 -- 请款单号
     */
    public static final String SETTLEMENT_APPLY_AMOUNT_NO = "settlement_apply_amount_no";

    /**
     * 报表服务--计数统计 RedisKey
     */
    public static final String REDIS_KEY_REPORT_TALLY = "report-service_tally_";

    /**
     * 报表服务--定时任务 RedisKey
     */
    public static final String REDIS_KEY_REPORT_TASK = "report-service_task";

    /**
     * 支付服务--定时任务 RedisKey
     */
    public static final String REDIS_KEY_PAY_TASK = "pay-service_task";

    /**
     * 采购服务--定时任务 RedisKey
     */
    public static final String QUOTED_PRICE_KEY = "quoted_price_task";
    /**
     * 结算服务--定时任务 RedisKey
     */
    public static final String SETTLE_ACCOUNT_TASK_KEY = "settle_account_task_key";

    /**
     * 采购服务--招标编号
     */
    public static final String REDIS_KEY_PURCHASE_INVITE_TENDER = "invite_tender";

    /**
     * 采购服务--投标物料编号
     */
    public static final String REDIS_KEY_PURCHASE_MATERIEL = "materiel";

    /**
     * 采购服务--投标编号
     */
    public static final String REDIS_KEY_PURCHASE_SUBMIT_TENDER = "submit_tender";
    /**
     * 合同服务--合同编号
     */
    public static final String REDIS_KEY_CONTRACT_NO = "contract_no";

    /**
     * 模板服务--会员店铺门户
     */
    public static final String REDIS_KEY_MEMBER_SHOP = "member_shop";

    /**
     * 营销服务--活动商品sku会员购买数（前缀：活动id=hkey   skuid:memberId:roleId =hfield）
     */
    public static final String REDIS_KEY_MARKETING_ACTIVITY_GOODS_MEMBER_BUY_NUM_PREFIX = "activity_goods_member_buy_num";
    /**
     * 营销服务--活动商品sku统计销量（key=销量前缀:活动id:skuid=pk1）
     */
    public static final String REDIS_KEY_MARKETING_ACTIVITY_GOODS_SKU_SALES_STATISTICS_PREFIX = "activity_goods_sales";
    /**
     * 营销服务--活动商品总实购数量(key=pk1:total)[string数据类型]
     */
    public static final String REDIS_KEY_MARKETING_SKU_SALES = "total";
    /**
     * 营销服务--活动商品参与客户数[set数据类型]
     */
    public static final String REDIS_KEY_MARKETING_CUSTOMER_NUM = "customer_num";
    /**
     * 营销服务--活动商品sku销量添加锁（key=销量添加前缀:活动类型：活动id:skuid）
     */
    public static final String REDIS_KEY_MARKETING_ACTIVITY_GOODS_SKU_SALES_ADD_PREFIX = "activity_goods_sales_add";
    /**
     * 营销服务--拼团时效（key=拼团时效前缀:拼团id）
     */
    public static final String REDIS_KEY_MARKETING_ACTIVITY_GOODS_GP_PREFIX = "activity_goods_gp";
    /**
     * 营销服务--活动执行缓存前缀
     */
    public static final String REDIS_KEY_MARKETING_ACTIVITY_EXECUTE_PREFIX = "activity_execute";
    /**
     * 营销服务--参与客户数
     */
    public static final String REDIS_KEY_MARKETING_ACTIVITY_EXECUTE_CUSTOMER_COUNT = "customer_count";
    /**
     * 营销服务--活动已执行订单数
     */
    public static final String REDIS_KEY_MARKETING_ACTIVITY_EXECUTE_ORDER_COUNT = "order_count";
    /**
     * 营销服务--已执行订单金额
     */
    public static final String REDIS_KEY_MARKETING_ACTIVITY_EXECUTE_ORDER_AMOUNT = "order_amount";

    /**
     * 结算服务--token前缀(由于只能存储38位，token已经32位了)
     */
    public static final String REDIS_KEY_SETTLEMENT_TOKEN_PREFIX ="settlement_all_in_token";

    /**
     * 结算服务-结算支付结果前缀
     */
    public static final String SETTLEMENT_CODE_RESULT = "settlement_code_result";
/**************************************     ES常量    ***************************************************/
    /**
     * 商品索引
     */
    public static final String ES_COMMODITY_INDEX = "commodity";

    /**
     * 结算流水号
     */
    public static final String SETTLEMENT_CODE = "settlement_code";


    /**
     * 结算流水号:时间格式
     */
    public static final String SETTLEMENT_CODE_DATE = "yyyyMMddHHmm";

    /**
     * 结算流水号位数
     */
    public static final Integer SETTLEMENT_CODE_NUM_LEN = 6;


    /**************************************     工作流常量    ***************************************************/
    /**
     * 招投标流程
     */
    public static final String INVITE_SUBMIT_TENDER_KEY = "Process_0a4zvo4";


    /**************************************     电子签章常量    ***************************************************/
    /**
     * app认证结果静态页面
     */
    public static final String SIGN_AUTH_ACTION = "/signAuth";

    /**************************************     会员服务常量    ***************************************************/

    public static final String LOGIN_QR_AUTH_ACTION = "/qrAuth";
}
